<?

/***************************************************************************
 Jupiter Content System @ Jupiterportal.com
 Copyright (C) 2005 Cosmin Flavius (highstrike@gmail.com)

 This program is free software; you can redistribute it and/or
 modify it under the terms of the GNU General Public License
 as published by the Free Software Foundation; either version 2
 of the License, or (at your option) any later version.

 More Info About The Licence At http://www.gnu.org/copyleft/gpl.html
****************************************************************************/

function b_calendar()
{
	$name_function = "b_calendar";

	global $a, $m, $db, $blocks_db, $template, $language, $config, $misc, $PHP_SELF, $is_loged_in, $is_moderator, $is_administrator, $is_webmaster, $months, $days, $m, $y, $OnlineGuestsCount, $OnlineMembersCount;
	if(!file_exists("blocks/$name_function/language/{$config['language']}")) include "blocks/$name_function/language/en.php";
	else include "blocks/$name_function/language/{$config['language']}";

	$random_code = md5("$name_function");
	$random_code = substr("$random_code", 0, 5);

	if(!isset($content)) $content = NULL;
	if(!isset($_GET["$random_code"])) $_GET["$random_code"] = NULL;

	if($_GET["$random_code"] == "on") $_SESSION["$random_code"] = "on";
	elseif($_GET["$random_code"] == "off") $_SESSION["$random_code"] = "off";

	$query_string = "?{$_SERVER['QUERY_STRING']}";

	foreach($blocks_db as $blocks)
	{
		$block_code = md5("{$blocks['name']}");
		$block_code = substr("$block_code", 0, 5);

		$query_string = str_replace("&$block_code=off","", $query_string);
		$query_string = str_replace("&$block_code=on","", $query_string);
	}

	if($query_string == "?" || strpos($query_string, '=on') !== false || strpos($query_string, '=off') !== false) $code_query = "?";
	else $code_query = "$query_string&";

	if(!isset($_SESSION["$random_code"]) || $_SESSION["$random_code"] == "on") $links= "<a href='$code_query$random_code=off'><img src='templates/$template/images/misc/minus.gif' border='0'> {$language_block['Calendar title']}</a>";
	elseif($_SESSION["$random_code"] == "off") $links = "<a href='$code_query$random_code=on'><img src='templates/$template/images/misc/plus.gif' border='0'> {$language_block['Calendar title']}</a>";

	$template_block = implode("", file("templates/$template/block.php"));
	$template_block = str_replace("{template}", $template, $template_block);
	$template_block = str_replace("{links}", $links, $template_block);

	if(!isset($_SESSION["$random_code"]) || $_SESSION["$random_code"] == "on")
	{
		//-----------------------------------------------------------------
		//  Some Code parts
		//-----------------------------------------------------------------

		$days = Array($language_block['Calendar day'],$language_block['Calendar day2'],$language_block['Calendar day3'],$language_block['Calendar day4'],$language_block['Calendar day5'],$language_block['Calendar day6'],$language_block['Calendar day7']);
		$months = Array($language_block['Calendar month'],$language_block['Calendar month'],$language_block['Calendar month2'],$language_block['Calendar month3'],$language_block['Calendar month4'],$language_block['Calendar month5'],$language_block['Calendar month6'],$language_block['Calendar month7'],$language_block['Calendar month8'],$language_block['Calendar month9'],$language_block['Calendar month10'],$language_block['Calendar month11'],$language_block['Calendar month12']);

		$month = $m;
		$year = date('Y');

		$monthfulltext = date("F", mktime(0, 0, 0, $month, 1, $year));
		$day_in_mth = date("t", mktime(0, 0, 0, $month, 1, $year));

		if($month == 12) $next_month = 1;
		else $next_month = $month + 1; 

		if($month == 1) $prev_month = 12;
		else $prev_month = $month - 1;

		$result = $db->query("SELECT id, type, day, month, year FROM events WHERE month = '".$db->escape($month)."' AND year = '".$db->escape($year)."' ORDER BY type");
		while ($temp = mysql_fetch_array($result))
		{
			$events[$temp['day']][] = $temp['id'];
			$event_info[$temp['id']] = $temp['type'];
			$event_year_db[$temp['id']] = $temp['year'];
		}

		//-----------------------------------------------------------------
		//  Start Display
		//-----------------------------------------------------------------

		$content .= "<tr class='bottom'><td colspan='7' align='center'><table width='100%' border='0' cellspacing='0' cellpadding='0'><col width='5%'><col width='90%'><col width='5%'><tr class='bottom'><td><a href='index.php?m=$prev_month'>&laquo;</a></td><td align='center'>{$months[$month]} $year</td><td><a href='index.php?m=$next_month'>&raquo;</a></td></tr></table></td></tr><tr>";

		foreach($days as $day) $content .= "<td class='con3' align='center'>".substr("$day", 0, $language_block['Calendar daycut'])."</td>";

		$content .= "</tr><tr>";

		//-----------------------------------------------------------------
		//  For first empty spaces
		//-----------------------------------------------------------------

		$day_of_wk = date("w", mktime(0, 0, 0, $month, 1, $year));

		if($day_of_wk <> 0) for ($i = 0; $i < $day_of_wk; $i++) $content .= "<td class='con1'>&nbsp;</td>";

		//-----------------------------------------------------------------
		//  Show days + events + birthdays
		//-----------------------------------------------------------------

		for ($date_of_mth = 1; $date_of_mth <= $day_in_mth; $date_of_mth++)
		{
			//-----------------------------------------------------------------
			//  Configure stuff first
			//-----------------------------------------------------------------

			if ($day_of_wk = 0) for ($i = 0; $i < $day_of_wk; $i++) $content .= "<tr>";

			$date_no = date("j", mktime(0, 0, 0, $month, $date_of_mth, $year));
			$day_of_wk = date("w", mktime(0, 0, 0, $month, $date_of_mth, $year));

			//-----------------------------------------------------------------
			//  Calculate class
			//-----------------------------------------------------------------

			if($month == date('n'))
			{
				if($date_no == date('j')) $class = "eventtoday";
				else $class = "eventempty";
			}
			else $class = "eventempty";

			//-----------------------------------------------------------------
			//  Show days
			//-----------------------------------------------------------------

			$day_event = "<td class='$class'>$date_no</td>";

			if(isset($events[$date_no]))
			{
				foreach ($events[$date_no] as $key=>$value)
				{
					if($date_no == date('j') && $month == date('n')) $day_event = "<td class='eventtoday'><a href='$PHP_SELF?n=modules/events&d=$date_no&m=$month'>$date_no</a></td>";
					else
					{
						if($event_info[$value] == 'normal') $day_event = "<td class='eventselect'><a href='$PHP_SELF?n=modules/events&d=$date_no&m=$month'>$date_no</a></td>";
						else $day_event = "<td class='eventbday'><a href='$PHP_SELF?n=modules/events&d=$date_no&m=$month'>$date_no</a></td>";
					}
				}
			}

			$content .= $day_event;

			//-----------------------------------------------------------------
			//  For last empty spaces
			//-----------------------------------------------------------------

			if($day_of_wk == 6) $content .= "</tr>";

			if($day_of_wk < 6 && $date_of_mth == $day_in_mth)
			{
				for ($i = $day_of_wk ; $i < 6; $i++) $content .= "<td class='con1'>&nbsp;</td>";

				$content .= "</tr>";
			}
		}
	}

	$template_block = str_replace("{content}", $content, $template_block);
	$output = $template_block;

return $output;
}

?>